package ar.fi.uba.celdas.ambiente.gui;

import ar.fi.uba.celdas.interfaces.bc.Regla;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

class TablaReglasModel extends AbstractTableModel {

	private static final long serialVersionUID = 1L;

	private List<Regla> reglas;
    
    private static String[] columnas = {"Regla", "Usos", "Éxito", "Utilidad"};
    private static Class<?>[] clases = {Integer.class, Integer.class, Integer.class, Integer.class};
    
    @Override
    public Class<?> getColumnClass(int columnIndex) {
    	return clases[columnIndex];
    }
    
    public TablaReglasModel() {
        this.reglas = new ArrayList<Regla>();
    }

    public void actualizar (List<Regla> reglas){
        this.reglas = new ArrayList<Regla>(reglas);
        fireTableDataChanged();
    }
    
    @Override
    public int getRowCount() {
        return reglas.size();
    }

    @Override
    public int getColumnCount() {
        return columnas.length;
    }

    @Override
    public String getColumnName(int column) {
        return columnas[column];
    }
    
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Regla r = reglas.get(rowIndex);
        switch (columnIndex){
            case 0: return rowIndex;
            case 1: return r.getUso();
            case 2: return r.getExitos();
            case 3: return r.getUtilidad();
            default : return "";
        }
    }

    Regla getRegla(int row) {
        return reglas.get(row);
    }
    
}
